package co.dzgroup.votacion.util;

import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.apache.log4j.Logger;

/**
 * Clase para enviar correos electronicos
 * @author Lucho
 */
public class CorreoElectronico{

    private Logger log=Logger.getLogger(CorreoElectronico.class);
    private String servidorSMTP = "smtp.gmail.com";
    private String puerto = "587";
    private String usuario = "dzgroup77@gmail.com";
    private String password = "dzgroup1234";

    /**
     * Método para enviar un correo electronico con los parametros definidos
     * @param asunto
     * @param mensaje
     * @param destino
     * @throws UnsupportedEncodingException
     */
    public void enviarCorreo(String asunto,String mensaje,String destino) throws UnsupportedEncodingException{
        //Se crean la propuedades para el envio del correo
        Properties props = new Properties();
        props.put("mail.debug", "true");
        props.put("mail.smtp.auth", true);
        props.put("mail.smtp.starttls.enable", true);
        props.put("mail.smtp.host", servidorSMTP);
        props.put("mail.smtp.port", puerto);
        String mailer = "msgsend";
        Session session = Session.getInstance(props, null);
        try{
            MimeMessage message = new MimeMessage(session);
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(
            destino));
            message.setSubject(asunto);
            message.setSentDate(new Date());
            message.setText(mensaje);
            //Se actualizan las propiedades para que el correo reciba código html
            message.setHeader("X-Mailer", mailer);
            message.setHeader("Content-type", "text/html");
            message.setHeader("charset", "iso-8859-1");

            Transport tr = session.getTransport("smtp");
            tr.connect(servidorSMTP, usuario, password);
            message.saveChanges();
            tr.sendMessage(message, message.getAllRecipients());
            tr.close();
        }catch (MessagingException e) {
            log.error("Error en el método CorreoElectronico.enviarCorreo:"+e.getMessage());
        }
    }
}
